﻿<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cliente_controller extends CI_Controller{
	
	private $pagina;
	
	public function __construct() {
		parent::__construct();
		$this->load->helper('layout');
		$this->load->helper('url');
		$this->pagina = new Layout(2);
	}
	
	public function index($id_cliente)
	{
		$this->load->model('ClienteDAO');
		
		$this->load->helper('html');
		$dados['cliente'] = $this->ClienteDAO->get($id_cliente);
		
		$this->pagina->setTitulo("DJBMED - Informações do Cliente: " . $dados['cliente']->getNomeCliente());
		$this->pagina->addView(2, 'cliente/visualizar', $dados);
		$this->pagina->render();
	}
	
	public function novo()
	{
		$this->load->helper('html');
		$this->load->library('form_validation');
		$this->load->library('Dominio');
		$this->pagina->setTitulo("DJBMED - Cadastrar Cliente");
		$this->pagina->addJavascript('formata_dados.js');
		$this->pagina->addJavascript('calendario.js');
		
		//Regras para o formulário
		
		$this->form_validation->set_rules('nome_cliente', 'Nome do Cliente', 'trim|required');
		$this->form_validation->set_rules('sexo', 'Sexo', 'trim|required');
		$this->form_validation->set_rules('data_nascimento', 'Data de Nascimento', 'trim');
		$this->form_validation->set_rules('endereco', 'Endereco', 'trim');
		$this->form_validation->set_rules('telefone', 'Telefone', 'trim|exact_length[13]');
		$this->form_validation->set_rules('email', 'E-mail', 'trim|valid_email');
		$this->form_validation->set_rules('outros_contatos', 'Outros Contatos', 'trim');
		$this->form_validation->set_rules('parentes', 'Parentes', 'trim');
		$this->form_validation->set_rules('historico_familiar', 'Histórico Familiar', 'trim');
		$this->form_validation->set_rules('etnia', 'Etnia', 'trim');
		$this->form_validation->set_rules('altura', 'Altura', 'trim');
		$this->form_validation->set_rules('peso', 'peso', 'trim');
		$this->form_validation->set_rules('glicemia', 'Glicemia', 'trim');
		$this->form_validation->set_rules('pressao_arterial', 'Pressão Arterial', 'trim');
		$this->form_validation->set_rules('contra_indicacao', 'Contra Indicações', 'trim');
		$this->form_validation->set_rules('historico_doencas', 'Histórico de Doenças', 'trim');
		$this->form_validation->set_rules('plano_saude', 'Plano de Saúde', 'trim');
		$this->form_validation->set_rules('medicos_preferidos', 'Médicos Preferidos', 'trim');
		$this->form_validation->set_rules('onde_costuma_comprar', 'Onde Costuma Comprar', 'trim');
		
		if($this->form_validation->run() == FALSE)
		{
			$this->pagina->addView(2, 'cliente/novo');
		}
		else
		{
			$this->load->model('ClienteDAO');
			$this->load->helper('date');
			$this->lang->load('misc');
			$cliente = new Cliente(	
									set_value('nome_cliente'), 
									set_value('sexo'),
									set_value('data_nascimento'),
									set_value('endereco'),
									set_value('telefone'), 
									set_value('email'), 
									set_value('outros_contatos'),   								
									set_value('parentes'),
									set_value('historico_familiar'), 
									set_value('etnia'), 
									set_value('altura'),
									set_value('peso'),
									set_value('glicemia'),
									set_value('pressao_arterial'),
									set_value('contra_indicacao'), 
									set_value('historico_doencas'),   								
									set_value('plano_saude'),
									set_value('medicos_preferidos'), 
									set_value('onde_costuma_comprar'),
									NULL
								);
								
			$result = $this->ClienteDAO->insert($cliente);
			
			if($result === FALSE)
				$msg = $this->lang->line('fail');
			else
			{
				$cliente->setIdCliente($result);
				$msg = $this->lang->line('success');
			}
				
			$dados['msg']		= $msg;
			$this->pagina->addView(2, 'layout/mensagem', $dados);
			$this->pagina->addInclude(meta('refresh', "3; URL=".site_url("cliente/todos"), 'equiv'));
		}
		$this->pagina->render();
	}
	public function todos()
	{	
		$this->load->helper('html');
		$this->lang->load('misc');
		$this->load->model('BuscaDAO');
		$this->load->library('form_validation');
		$this->form_validation->set_rules('busca', 'Busca', 'trim|required');
		
		// load pagination class
		$this->load->library('pagination');
		$config['base_url'] = base_url().'cliente/todos/';
		$config['total_rows'] = $this->BuscaDAO->countBuscaCliente();
		$config['per_page'] = '9';
		$config['num_links'] = 1;
		$config['first_link'] = 'Primeira';
		$config['last_link'] = 'Última';
		$this->pagination->initialize($config);
			
		//load the model and get results
		$dados['busca'] = $this->BuscaDAO->getBuscaCliente($config['per_page'],$this->uri->segment(3));
		if($dados['busca'] == FALSE)
		unset($dados['busca']);
			
		// load the view
		$this->pagina->setTitulo("DJBMED - Lista de Clientes");
		$this->pagina->addView(2,'cliente/todos', $dados);
		$this->pagina->render();
	}
	
	public function editar($id_cliente)
	{	
		$this->load->model('ClienteDAO');
	    $cliente = $this->ClienteDAO->get($id_cliente);
		$this->load->helper('html');
		$this->load->library('form_validation');
		$this->load->library('Dominio');
		$this->pagina->setTitulo("DJBMED - Editar Cadastro - Cliente: ".$cliente->getNomeCliente()); 
		$this->pagina->addJavascript('formata_dados.js');
		$this->pagina->addJavascript('calendario.js');
		
		//Regras para o formulário
		
		$this->form_validation->set_rules('nome_cliente', 'Nome do Cliente', 'trim|required');
		$this->form_validation->set_rules('sexo', 'Sexo', 'trim|required');
		$this->form_validation->set_rules('data_nascimento', 'Data de Nascimento', 'trim');
		$this->form_validation->set_rules('endereco', 'Endereco', 'trim');
		$this->form_validation->set_rules('telefone', 'Telefone', 'trim|exact_length[13]');
		$this->form_validation->set_rules('email', 'E-mail', 'trim|valid_email');
		$this->form_validation->set_rules('outros_contatos', 'Outros Contatos', 'trim');
		$this->form_validation->set_rules('parentes', 'Parentes', 'trim');
		$this->form_validation->set_rules('historico_familiar', 'Histórico Familiar', 'trim');
		$this->form_validation->set_rules('etnia', 'Etnia', 'trim');
		$this->form_validation->set_rules('altura', 'Altura', 'trim');
		$this->form_validation->set_rules('peso', 'peso', 'trim');
		$this->form_validation->set_rules('glicemia', 'Glicemia', 'trim');
		$this->form_validation->set_rules('pressao_arterial', 'Pressão Arterial', 'trim');
		$this->form_validation->set_rules('contra_indicacao', 'Contra Indicações', 'trim');
		$this->form_validation->set_rules('historico_doencas', 'Histórico de Doenças', 'trim');
		$this->form_validation->set_rules('plano_saude', 'Plano de Saúde', 'trim');
		$this->form_validation->set_rules('medicos_preferidos', 'Médicos Preferidos', 'trim');
		$this->form_validation->set_rules('onde_costuma_comprar', 'Onde Costuma Comprar', 'trim');
		
		if($this->form_validation->run() == FALSE)
		{
			$dados['cliente'] = $cliente;
			if($dados['cliente'] == FALSE)
			unset($dados['cliente']);
			$this->pagina->addView(2, 'cliente/editar', $dados);
		}
		else
		{
			$this->load->model('ClienteDAO');
			$this->load->helper('date');
			$this->lang->load('misc');
			$cliente1 = new Cliente(	
									set_value('nome_cliente'), 
									set_value('sexo'),
									set_value('data_nascimento'),
									set_value('endereco'),
									set_value('telefone'), 
									set_value('email'), 
									set_value('outros_contatos'),   								
									set_value('parentes'),
									set_value('historico_familiar'), 
									set_value('etnia'), 
									set_value('altura'),
									set_value('peso'),
									set_value('glicemia'),
									set_value('pressao_arterial'),									
									set_value('contra_indicacao'), 
									set_value('historico_doencas'),   								
									set_value('plano_saude'),
									set_value('medicos_preferidos'), 
									set_value('onde_costuma_comprar'),
									$cliente->getIdCliente()
								);
			$result = $this->ClienteDAO->update($cliente1);
			if($result === FALSE)
				$msg = $this->lang->line('fail');
			else
			{
				$cliente->setIdCliente($result);
				$msg = $this->lang->line('success');
			}
				
			$dados['msg']		= $msg;
			$this->pagina->addView(2, 'layout/mensagem', $dados);
			$this->pagina->addInclude(meta('refresh', "1; URL=".site_url("cliente/todos"), 'equiv'));
		}
		$this->pagina->render();
	}
	
	public function excluir($id_cliente)
	{
		$this->load->model('ClienteDAO');
		$this->load->helper('html');
		$this->lang->load('misc');
		
		$clientes = $this->ClienteDAO->getAll();
		foreach($clientes as $c)
			if($c->getIdCliente() == $id_cliente)
			{
				$nomeCliente = $c->getNomeCliente();
				$idCliente = $c->getIdCliente();
			}
				
		$dados['nomeCliente'] = $nomeCliente;
		if($dados['nomeCliente'] == FALSE)
		unset($dados['nomeCliente']);
		$dados['idCliente'] = $idCliente;
		if($dados['idCliente'] == FALSE)
		unset($dados['idCliente']);
		
		$this->pagina->setTitulo("DJBMED - Excluir Cliente");
		$this->pagina->addView(2, 'cliente/excluir', $dados);
		$this->pagina->render();
	}
	
	public function delete($id_cliente)
	{
		$this->load->model('ClienteDAO');
		$this->load->helper('html');
		$this->lang->load('misc');
		
		//Confere se o cliente está associado com uma venda
		$this->load->model('VendaDAO');
		$vendas = $this->VendaDAO->getAll();
		if($vendas != FALSE)
		{
			$count = 0;
			foreach ($vendas as $v)
				if($v->getCliente() == $id_cliente)
					$count++;
			if($count == 0)
				$result = $this->ClienteDAO->delete($id_cliente);
			else
				$result = "Erro";
		}
		else $result = $this->ClienteDAO->delete($id_cliente);
		
		if($result === FALSE)
			$msg = $this->lang->line('fail');
		else if($result == "Erro")
			$msg = $this->lang->line('cliente');
		else
			$msg = $this->lang->line('success');
		
		$layout = new Layout(2);
		$this->pagina->setTitulo("DJBMED - Excluir Cliente");
		
		$dados['msg']		= $msg;
		$this->pagina->addView(2, 'layout/mensagem', $dados);
		$this->pagina->addInclude(meta('refresh', "3; URL=".site_url("cliente/todos"), 'equiv'));
		$this->pagina->render();
	}
}

/* End of file colaborador_controller.php */
/* Location: ./application/controllers/colaborador_controller.php */
